The present invention relates generally to a manner by which to communicate data in a packet communication system in which a communication channel exhibits variable delay. More particularly, the present invention relates to apparatus, and an associated method, by which to compensate for the variable delay introduced upon the data during communication of the data to a receiving station. A trimming buffer is utilized to buffer data. Selected portions of the data buffered at the trimming buffer are trimmed to reduce data delay but in a manner to maintain acceptable communication quality levels.
Advancements in communication technologies have permitted the introduction of, and popularization of, new types of, and improvements in existing, communication systems. As a result of such improvements, new types of communications, requiring high data throughput rates, are possible. Digital communication techniques, for instance, are increasingly utilized in communication systems to efficiently communicate digital data, and the use of such techniques has facilitated the increased data throughput rates.
Digital voice communications, for instance, are exemplary of new types of communications permitted as a result of the improvements in communication technologies. Voice-Over-Internet Protocol (VOIP) communications form a type of digital voice communications. In VOIP communications, voice data is digitized and packetized into data packets prior to communication by a sending station upon a communication channel to a receiving station. Because of the packetized nature of the voice data, individual packets can be communicated upon the communication channel at discrete intervals. Once received at the receiving station, the data packets are concatenated together, thereby to permit recreation of the transmitted voice data.
With the popularization of the Internet and communication thereon, the Internet backbone has been utilized to form the communication channel upon which the data packets are communicated between a sending station and a receiving station. Telephonic communication effectuated in this manner is sometimes referred to as Internet telephony. Each packet of data into which the voice data is formatted includes a header portion which contains header information. Such header information includes, for instance, IP, UDP, and RTP information utilized to identify to where the packet is to be directed and to provide a time stamp with the packet. The informational part of the packet of data is referred to as the payload portion of the packet. The payload portion is appended to the header portion of the packet.
Packets communicated upon the Internet backbone, or other appropriate packet data network, are generally communicated upon available communication paths. Different packets of data might well be communicated upon different communication paths which have associated therewith differing path lengths or otherwise have differing delay periods between the sending and receiving stations. And, as a result of increased usage of conventional packet data networks, the delay times associated with the communication of packets of data between a sending and a receiving station can sometimes be significant. Congestion is sometimes said to occur when communication paths become clogged with packets of data to reduce the timeliness of their delivery to the receiving station. The congestion, and corresponding delay, disrupt communication quality of voice communications.
When a congestion condition dissipates, data packets, previously prevented from their delivery to the receiving station, are delivered in large numbers to the receiving station. That is to say, data packets are delivered to the receiving station in a surge, referred to as a surge condition. The deterioration of communication quality levels resulting therefrom is readily discernible by a user of the receiving station merely by listening to the resultant voice data once transduced into aural form.
Additionally, VOIP communication exhibits a jitter. Jitter also interferes with communication quality levels of the voice data.
Conventional efforts by which to compensate for the jitter include the use of a jitter buffer at a receiving station. The jitter buffer is generally of a buffer size which generally corresponds to the amount of delay exhibited in the transmission of the voice data to the receiving station. However, because the delay exhibited is variable, matching the size of the jitter buffer to the amount of delay is problematical. In the event that the jitter buffer is of a small buffer size, lessened amount of delay time results during pendency of the packets of data in the jitter buffer. But, if delay of the packets of data upon the communication paths is significant, a small buffer size is inadequate to buffer the data when finally received at the receiving station. Data overflowing from the buffer is generally discarded, thereby resulting in the loss of the informational content of the data and corresponding diminution of communication quality.
If, conversely, the buffer size is selected to be relatively large, voice quality is improved as the buffer is less likely to overflow, resulting loss of the data. But, by increasing the size of the jitter buffer, the corresponding delay is increased, in turn also resulting in a reduced communication quality level.
If a better manner could be provided by which to compensate for variable delays of the communication data in a packet data communication system, improved communication quality would be possible.
It is in light of this background information related to the communication of packet data that the significant improvements of the present invention have evolved.
The present invention, accordingly, advantageously provides apparatus, and an associated method, by which better to communicate data in a packet communication system.
Through operation of an embodiment of the present invention, a manner is provided by which to compensate for variable delays by which the packet data is delayed during communication of the data upon a communication path to a receiving station. Better compensation is made, through operation of an embodiment of the present invention, for surges of data received at a receiving station subsequent to a network congestion condition. Operation of an embodiment of the present invention is simply implemented and requires substantially less processing power in contrast to conventional compensation manners which require checking of the content of successive frames and performing jitter management operations upon the successive frames.
In one aspect of the present invention, a jitter buffer of relatively small buffer size is provided. The jitter buffer is of a size, for instance, to permit 50 ms of data packets to be buffered thereat. During a selected time period, earliest-received data packets, received during the selected time period, are buffered at the jitter buffer. The size of the jitter buffer is selected so that minimal delay is exhibited at the receiving station as a result of the buffering of the data.
In another aspect of the present invention, a trimming buffer is provided, also for buffering data packets thereat. The trimming buffer is of a size selected to permit buffering thereat of data packets received at a receiving station during a surge of data subsequent to a network congestion situation on a network upon which data is communicated to the receiving station. The trimming buffer is selected, for instance, to be of a buffer size to permit storage of data received during a 350 ms time period to be buffered at the trimming buffer. By selecting the buffer size of the trimming buffer to be of a great enough size, data packets arriving at the receiving station during a surge of data, subsequent to a congestion condition insures that data packets are not lost due to buffer overflow at the receiving station.
In another aspect of the present invention, a trimmer is provided for selectably trimming portions of the data buffered at the trimming buffer. The trimmer is operable in a manner to reduce the amount of data stored at the buffer but in a manner which maintains an acceptable audio quality of the data when converted back into voice data. In an exemplary implementation, the trimmer is operable to trim 50-ms segments of data out of the trimming buffer, thereby to reduce the amount of data stored thereat. Subsequent to the trimming of the segment of data, a subsequent 100 ms segment of data is not trimmed. If additional data remains in the trimming buffer subsequent to the 100 ms segment, the succeeding 50-ms segment of the data is then trimmed. Thereby, data packets of 250 ms of duration buffered at the trimming buffer are reduced in length to 150 ms durations. While the trimmed portions of the data are discarded, the informational content of the remaining portions of the data can still be utilized to generate a voice signal of a quality level permitting a user to understand the information content thereof.
In one implementation, a receiving station operable to receive VOIP (Voice-Over-Internet Protocol) data in an Internet telephony station includes apparatus by which to compensate for delay in an IP sound packet buffer. Data packets transmitted to the Internet telephony station are transmitted upon a packet data network backbone, such as the Internet backbone. The backbone is susceptible to congestion conditions and subsequent surge conditions in which large numbers of data packets are received at the Internet telephony station in a short period of time. A first set of data packets received at the station are buffered at a jitter buffer and subsequent data packets received at the station are buffered at a trimming buffer. The trimming algorithm is executed to selectably trim portions of the data stored at the trimming buffer. The data buffered at the jitter buffer is combined together with the remaining portions of the data buffered at the trimming buffer, and such data is thereafter utilized to recreate a voice signal for a user of the Internet telephony station.
In these and other aspects, therefore, apparatus, and an associated method, is provided for a receiving station operable to receive data packets transmitted thereto upon a channel. The channel exhibits variable delays in transmission of the data packets upon the channel. Compensation is made for the variable delays introduced upon the data packets during transmission to the receiving station. A first data packet buffer is coupled to receive a first set of the data packets received at the receiving station. The first data packet buffer buffers thereat the first set of the data packets. A second data packet buffer is coupled to receive a second set of the data packets received at the receiving station. The second data packet buffer buffers thereat the second set of the data packets. A data packet trimmer is coupled to access the second set of the data packets once received at the second data packet buffer. The data packet trimmer selectably trims selected data packets of the second set of data packets. Remaining ones of the data packets of the second set of data packets are concatenated to the data packets of the first set to form a resultant data packet set. The selected data packets trimmed by the data packet trimmer are trimmed such that the resultant data packet set is of a size within a selected set-size.